package com.ellwood.IPGuard.common.core.basic;

import java.util.List;

/**
 * @ProjectName: IPGuard-boot
 * @PackageName: com.ellwood.IPGuard.common.core.basic
 * @ClassName: EntityRepository
 * @Description: // 基础领域实体仓库接口
 * @Author: Ellwood
 * @CreateDate: 2024/9/25 - 下午3:52
 * @Version: V1.0.0
 */
public interface EntityRepository<T> {

    // TODO 公共的控制器的放在此处进行处理
        
        /**
         * 查询所有用户
         *
         * @return 返回用户数据
         */
        List<T> findUserAll();
        
        /**
         * 根据id查询用户
         *
         * @param id 用户id
         * @return 返回用户数据
         */
        T findUserById(Long id);
        
        /**
         * 保存用户
         *
         * @param t 用户实体
         * @return 返回添加成功
         */
        boolean saveUser(T t);
        
        /**
         * 更新用户
         *
         * @param t 用户实体
         * @return 返回修改成功
         */
        boolean editUser(T t);
        
        /**
         * 根据id删除用户
         *
         * @param id 用户id
         * @return 返回删除成功
         */
        boolean deleteUser(Long id);
        
        /**
         * 根据id批量删除用户
         *
         * @param ids 用户id列表
         * @return 返回删除陈工
         */
        boolean deleteUserAll(List<Long> ids);
        
}
